package cn.wolfcode.trip.base.domain;

import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * 攻略文章
 */
@Setter
@Getter
public class StrategyDetail extends BaseDomain {
    public static final int STATE_COMMON = 0;   // 草稿
    public static final int STATE_RELEASE = 1;  // 发布
    public static final int STATE_DISABLE = -1; // 禁用

    // 标题
    private String title;
    // 创建时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    // 发布时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date releaseTime;
    // 序号
    private Integer sequence;
    // 所属目录
    private StrategyCatalog catalog;
    // 封面
    private String coverUrl;
    // 状态
    private Integer state = STATE_COMMON;
    // 攻略文章内容
    private StrategyContent strategyContent;

    public String getStateName() {
        String temp = "草稿";
        if (STATE_RELEASE == state) {
            temp = "发布";
        } else if (STATE_DISABLE == state) {
            temp = "禁用";
        }
        return temp;
    }

    public String getJson() {
        Map<String, Object> map = new HashMap<>();
        map.put("id", id);
        map.put("title", title);
        map.put("coverUrl", coverUrl);
        map.put("state", state);
        map.put("sequence", sequence);
        if (catalog != null) {
            map.put("catalogId", catalog.getId());
            map.put("catalogName", catalog.getName());
            if (this.catalog.getStrategy() != null) {
                map.put("strategyId", this.catalog.getStrategy().getId());
            }
        }
        return JSON.toJSONString(map);
    }
}